#include "cputest.h"

TEST(test12, \
	"l_%=: \n\t" \
	"bsf %%eax, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test13, \
	"l_%=: \n\t" \
	"bsf %%eax, %%eax \n\t" \
	"bsf %%ebx, %%ebx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test14, \
	"l_%=: \n\t" \
	"bsf %%eax, %%eax \n\t" \
	"bsf %%ebx, %%ebx \n\t" \
	"bsf %%edx, %%edx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test15a, \
	"movl $0, %%eax \n\t" \
	"l_%=: \n\t" \
	"test $1, %%eax \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test15b, \
	"movl $1, %%eax \n\t" \
	"l_%=: \n\t" \
	"test $1, %%eax \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test16, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test17, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"nop \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test18, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"jnz lb_%= \n\t" \
	"nop \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test19, \
	"l_%=: \n\t" \
	"test $1, %%ecx \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"jnz lb_%= \n\t" \
	"lb_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test20, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test21, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test22, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test23, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test24, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"paddb %%mm0, %%mm5 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test25, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"paddb %%mm0, %%mm5 \n\t" \
	"paddb %%mm0, %%mm6 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test26, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"paddb %%mm0, %%mm4 \n\t" \
	"paddb %%mm0, %%mm5 \n\t" \
	"paddb %%mm0, %%mm6 \n\t" \
	"paddb %%mm0, %%mm7 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test30, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test31, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test32, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test33, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test34, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test35, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test36, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"paddb %%mm6, %%mm7 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test40, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"pextrw $0, %%mm1, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test41, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"pextrw $0, %%mm2, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test42, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"pextrw $0, %%mm3, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test43, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"pextrw $0, %%mm4, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test44, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"pextrw $0, %%mm5, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test45, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"pextrw $0, %%mm6, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test46, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"paddb %%mm3, %%mm4 \n\t" \
	"paddb %%mm4, %%mm5 \n\t" \
	"paddb %%mm5, %%mm6 \n\t" \
	"paddb %%mm6, %%mm7 \n\t" \
	"pextrw $0, %%mm7, %%eax \n\t" \
	"loop l_%= \n\t" \
     )

test12: 4.041076
test13: 6.041124
test14: 8.082775
test15a: 7.082748
test15b: 5.041091
test16: 14.665454
test17: 11.078872
test18: 15.707147
test19: 12.335280
test20: 6.041089
test21: 6.041049
test22: 6.042655
test23: 8.082733
test24: 10.124343
test25: 12.124344
test26: 14.165993
test30: 6.041005
test31: 6.041044
test32: 6.041170
test33: 8.082740
test34: 12.124371
test35: 13.165498
test36: 16.207183
test40: 18.207084
test41: 24.290397
test42: 30.374330
test43: 36.456452
test44: 42.539719
test45: 48.622976
test46: 54.705903
